package com.crm.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.crm.entity.Track;
import com.crm.entity.dto.TrackDto;
import com.crm.service.TrackService;
import com.crm.util.PageUtil;
import com.crm.util.Result;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author crm
 * @since 2020-06-05
 */
@RestController//标注当前类是controller类，controller用 于处理客户端请求，加Rest表示当前类的所有方法都返回json数据，不走视图
@RequestMapping("track")// 客户端请求地址
public class TrackController {
    @Resource//设置注入方式，spring 自动在spring容器找到叫这个名或这个类型的对象，赋给当前属性，controller调 用service
    private TrackService trackService;//track的业务层父接口

    @RequestMapping("createTrack")// 客户端请求地址
    public Object createTrack(Track track, Integer stuId) {

        track.setStuId(stuId);
        boolean i = trackService.save(track);
        if (i == true) {
            return new Result(0, "添加成功");
        }
        return new Result(1, "添加失败");
    }

    @RequestMapping("getAllTrack")// 客户端请求地址
    public Object getAllTrack(Page<Track> page, TrackDto trackDto) {


        IPage<Track> allTrack = trackService.getAllTrack(page,trackDto);//调用service层方法getAllTrack()，获取数据

        return new Result(0, "", allTrack.getRecords(), allTrack.getTotal());

    }

    @RequestMapping("deleteTrack")// 客户端请求地址
    public Object deleteTrack(Integer tid) {

        boolean i = trackService.removeById(tid);//调用mybatis plus的内 置service层方法removeById()，删除数据
        if (i == true) {
            return new Result(0, "删除成功");
        }
        return new Result(1, "删除失败");
    }

    @RequestMapping("selectTrackBySid")// 客户端请求地址
    public Object selectTrackBySid(Integer stuId, PageUtil p) {

        List<Track> selectTrackBySid = trackService.selectTrackBySid(stuId);//调用service层方法selectTrackBySid()，查询数据
        return new Result(0, "", selectTrackBySid);
    }


}
